package com.wande.dataplatform.filecollection.common.enums;

/**
 * 错误处理策略枚举
 *
 * @author wande
 */
public enum ErrorHandlingStrategy {

    /**
     * 跳过错误记录，继续处理
     */
    SKIP_RECORD("SKIP_RECORD", "跳过记录"),

    /**
     * 标记错误，记录日志，继续处理
     */
    MARK_ERROR("MARK_ERROR", "标记错误"),

    /**
     * 终止任务
     */
    STOP_TASK("STOP_TASK", "终止任务");

    private final String code;
    private final String description;

    ErrorHandlingStrategy(String code, String description) {
        this.code = code;
        this.description = description;
    }

    public String getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }

    /**
     * 根据代码获取策略
     */
    public static ErrorHandlingStrategy fromCode(String code) {
        for (ErrorHandlingStrategy strategy : values()) {
            if (strategy.code.equals(code)) {
                return strategy;
            }
        }
        return SKIP_RECORD; // 默认策略
    }
}
